【枚举的定义;枚举变量的定义、初始化和赋值】(学习笔记16 | 您所在的位置:网站首页 › react 变量给变量赋值只赋值不赋地址 › 【枚举的定义;枚举变量的定义、初始化和赋值】(学习笔记16 |
目录
枚举的定义枚举变量的定义枚举变量的初始化与赋值
使用枚举类型,可以提高程序代码的健壮性和可读性,并且枚举成员属于常量,甚至可以使用枚举成员名作为维的大小,来进行数组的定义 枚举的定义定义枚举的格式为 enum 枚举名{枚举成员1,枚举成员2,...};下面来定义一个和方向相关的枚举类型Dir enum Dir{UP,DOWN,LEFT,RIGHT};枚举成员属于常量,默认情况下,枚举成员是一个整型值,其第一个枚举成员的值为0,而后续枚举成员的值为其前一个枚举成员的值加1 printf("UP = %d\n",UP); printf("DOWN = %d\n",DOWN); printf("LEFT = %d\n",LEFT); printf("RIGHT = %d\n",RIGHT);结果如下 UP = 0 DOWN = 1 LEFT = 2 RIGHT = 3也可以自己设置枚举成员的值 enum Dir{UP,DOWN = 10,LEFT,RIGHT}; printf("UP = %d\n",UP); printf("DOWN = %d\n",DOWN); printf("LEFT = %d\n",LEFT); printf("RIGHT = %d\n",RIGHT);结果如下 UP = 0 DOWN = 10 LEFT = 11 RIGHT =12枚举成员是一个常量,可以将其作为定义数组的长度大小,也可以将其作为一个整型值初始化或赋值给一个整型变量,甚至将其作为表达式的一部分 enum Dir{UP,DOWN,LEFT,RIGHT}; char arr[RIGHT]; int i = UP; i = DOWN + 3; 枚举变量的定义定义好枚举之后,就拥有了相应的枚举类型,可以根据这个枚举类型来定义相应的枚举变量。与结构体和联合体的变量定义方式类似,在定义枚举变量时,也可以采用以下3种不同的方式 (1)先定义枚举,再定义枚举变量 enum Dir dir1;(2)在定义枚举的同时定义枚举变量 enum Dir{UP = -3,DOWN,LEFT,RIGHT}dir2;(3)定义无名枚举类型的枚举变量 enum {UP = -3,DOWN,LEFT,RIGHT}dir3;第一种方式可以定义出具有局部或全局作用域的枚举变量 第二种和第三种定义出来的都是具有全局作用域的枚举变量 由于第三种方式定义的是无名枚举类型,因此,只能在该枚举类型定义处直接定义枚举变量,在其它地方无法定义出该类型的枚举变量 枚举变量的初始化与赋值在定义枚举变量的同时,可以对其进行初始化 enum Dir dir1 = LEFT;也可以对枚举变量进行赋值操作 enum Dir dir2; dir2 = DOWN;可以将枚举成员视为整型常量,而将枚举变量视为整型变量。因此,可以将一个整型值初始化或赋值给枚举变量 enum Dir dir = 2; dir = 1;编写程序,用键盘上的W、S、A、D四个按键来表示上、下、左、右四个方向,当用户按下相应按键后,程序能够打印输出用户所选择的方向 #include #include enum Dir{UP,DOWN,LEFT,RIGHT}; void printDirect(enum Dir dir) { switch(dir) { case UP: printf("The direction is UP.\n"); break; case DOWN: printf("The direction is DOWN.\n"); break; case LEFT: printf("The direction is LEFT.\n"); break; case RIGHT: printf("The direction is RIGHT.\n"); break; } } int main() { enum Dir dir; char ch; printf("Please determine a direction:\n"); scanf("%c",&ch); ch = islower(ch) ? toupper(ch) : ch; switch(ch) { case 'W': dir = UP; break; case 'S': dir = DOWN; break; case 'A': dir = LEFT; break; case 'D': dir = RIGHT; break; } printDirect(dir); return 0; }主函数中,首先定义了两个变量,一个是枚举Dir类型的变量dir,一个是字符类型变量ch。在获取用户输入的字符后,将其保存至变量ch中,若用户输入的是小写字母,可以通过三目条件运算符,将存储在变量ch中的小写字母转换为大写字母。接着在switch语句中,当找到与变量ch匹配的case标签后,能够将一个正确的枚举成员赋值给枚举变量dir。最后,将枚举变量dir作为printDirect函数的实参,进行函数的调用 结果如下 Please determine a direction: a The direction is LEFT. |
CopyRight 2018-2019 实验室设备网 版权所有 |